今天來用我們前幾天下載的 DVWA 進行 XSS 實戰吧!
登入 DVWA
到 Security 把 level 調到 LOW
這裡可以調整網站的安全等級
就可以開始實戰了!
來到 XSS (Reflected) 我們會看到
先輸入一點東西看看
這裡輸入"test" ,會發現有一行 "Hello test" 跳出來了,上面 URL 也多出了一個參數 name
透過 F12 我們可以發現 "Hello test" 的字串好像是直接插入進頁面的
右下角的按鈕可以看 source code 或 help
soucre code
他沒有過濾就直接把字串接起來
所以可以直接輸入
或是在URL打
XSS 成功 !!!
接下來把 level 調到 Medium
試一下剛才的 payload <script>alert(1)</script>
沒有用了
看一下 soucre code
他利用 str_replace()
把 <script>
替換成空字元了
沒事我們還有辦法, 我們可以繞過他,由於HTML是個弱型別語言,所以就算標籤的大小寫錯誤也還是可以正常執行
XSS 成功 !!!
接下來把 level 調到 High
我們直接來看 soucre code
糟糕他這次防的更深了,只要我有<script>
,不論大小寫,一律替換成空白
既然這樣那就不用 <script>
了
還記得那些可以觸發的 javascript 事件嗎
我們改用 <img>
試試
<img src="" onerror="alert(1)">
XSS 成功 !!!
接下來把 level 調到 Impossible (不可能)
一樣來看 source code
htmlspecialchars()
可以把一些特殊字元換成 HTML 的實體符號
這樣才是防範 XSS 比較好的方式